package com.github.kezhenxu94.playground.java.interview.jd;

import java.util.Scanner;

/**
 * 第K个幸运数
 * 
 * <pre>
 * 题目描述：
 * 4和7是两个幸运数字，我们定义，十进制表示中，每一位只有4和7两个数的正整数都是幸运数字。
 * 前几个幸运数字为：4,7,44,47,74,77,444,447... 
 * 现在输入一个数字K，输出第K个幸运数。
 * 
 * 输入
 * 第一行一个数字T（T<=1000）表示测试数据的组数。对于每组测试数据，输出一个数K
 * 
 * 输出
 * 每组数据输出一行，第K个幸运数。
 * </pre>
 * 
 * TODO Optimize and verify
 * @author KeZhenxu
 *
 */
public class LuckyNumber {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int testCase = scanner.nextInt();
		for (int i = 0; i < testCase; i++) {
			int k = scanner.nextInt();
			int digits = 1;
			while (Math.pow(2, digits + 1) - 2 < k)
				digits++;

			int binary = (int) (k - Math.pow(2, digits) + 1);
			StringBuilder sb = new StringBuilder();
			for (int m = 0; m < digits; m++) {
				sb.insert(0, binary % 2 == 1 ? "7" : "4");
				binary >>= 1;
			}
			System.out.println(sb.toString());
		}
		scanner.close();
	}

}
